#ifndef LIB_GEOUTILS_COLORRGB_H
#define LIB_GEOUTILS_COLORRGB_H
#include "libGeoutils/property/properties.h"

namespace geo {
namespace tool {
class GEOUTILS_EXPORT ColorRGBA : public prop::Properties
{
public:
	using sptr = std::shared_ptr<ColorRGBA>;
	using csptr = std::shared_ptr<const ColorRGBA>;
	using ElementType = unsigned;

	ColorRGBA(ElementType R = 0, ElementType G = 0, ElementType B = 0, ElementType A = 255);
	virtual ~ColorRGBA();

	void setRGBA(ElementType R, ElementType G, ElementType B, ElementType A);
	void getRGBA(ElementType& R, ElementType& G, ElementType& B, ElementType& A) const;
	operator std::string() const;

	void setR(ElementType R);
	ElementType getR() const;
	void setG(ElementType G);
	ElementType getG() const;
	void setB(ElementType B);
	ElementType getB() const;
	void setA(ElementType A);
	ElementType getA() const;

protected:

private:

};

} // namespace tool
} // namespace geo

#endif // !LIB_GEOUTILS_COLORRGB_H
